package pers.linkong.asr.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import pers.linkong.asr.domain.CourseSublevelBean;
import pers.linkong.asr.mapper.CourseSublevelMapper;

@Service
// Service组件
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE, readOnly = false)
public class CourseSublevelService {
	@Autowired
	private CourseSublevelMapper courseSublevelMapper;

	// 增
	public void addCourseSublevel(CourseSublevelBean courseSublevel) throws Exception {
		int cid = courseSublevel.getCid();
		int tmp,cidSublevel;
		int counet = this.courseSublevelMapper.getCSCount(cid);
		if(counet == 0){
			cidSublevel = cid*100+1;
			courseSublevel.setCidSublevel(cidSublevel);
		} else {
			tmp = this.courseSublevelMapper.getCSLastID(cid);
			cidSublevel = tmp + 1;
			courseSublevel.setCidSublevel(cidSublevel);
		}
		this.courseSublevelMapper.addCourseSublevel(courseSublevel);
		this.courseSublevelMapper.addCS(cid, cidSublevel);
		System.out.println("添加课程子级：" + courseSublevel.getCidSublevel());
		// throw new RuntimeException();
	}

	// 删
	public void deleteCourseSublevel(int cidSublevel) throws Exception {
		this.courseSublevelMapper.delCS(cidSublevel);
		this.courseSublevelMapper.deleteCourseSublevel(cidSublevel);
		System.out.println("删除课程子级：" + cidSublevel);
	}

	// 查
	public CourseSublevelBean getCourseSublevelById(int id) throws Exception {
		CourseSublevelBean courseSublevel = courseSublevelMapper.getCourseSublevelById(id);
		System.out.println("查询课程子级：" + courseSublevel.getCidSublevel());
		return courseSublevel;
	}

	// 改
	public void updateCourseSublevel(CourseSublevelBean courseSublevel) throws Exception {
		this.courseSublevelMapper.updateCourseSublevel(courseSublevel);
		System.out.println("修改课程子级：" + courseSublevel.getCidSublevel());
	}

	// 分页
	public List<CourseSublevelBean> findCourseSublevelByPage(CourseSublevelBean courseSublevel, long start,
			long limit) throws Exception {
		List<CourseSublevelBean> courseSublevelBeans = this.courseSublevelMapper.findCourseSublevelByPage(courseSublevel, start, limit);
		return courseSublevelBeans;
	}
	
	// 统计
	public long getCourseSublevelCount(CourseSublevelBean courseSublevel) throws Exception {
		return this.courseSublevelMapper.getCourseSublevelCount(courseSublevel);
	}
}
